/**
  ******************************************************************
  * @file    main.c
  * @author  xy	
  * @version V1.0
  * @date    2021-3-31
  * @brief   呼吸灯
  ******************************************************************
  * @attention
  * verimake 用于ch549例程
  * 使用pwm外设让板子上的灯展示呼吸灯的效果
  ******************************************************************
  */
#include <CH549_sdcc.H>	 //ch549的头文件，其中定义了单片机的一些特殊功能寄存器
#include <CH549_PWM.H>   //CH549官方提供库的头文件，定义了一些关于pwm初始化，设置等函数
/********************************************************************
* TIPS:
*  引脚            功能
*  P2.5            PWM0
*  P2.4            PWM1
*  P2.3            PWM2
*  P2.2            PWM3
*  P2.1            PWM4
*  P2.0            PWM5
*  P2.6            PWM6
*  P2.7            PWM7
*********************************************************************/

/********************************************************************
* 函 数 名       : delay
* 函数功能		   : 延时函数
* 输    入       : 时间
* 输    出    	 : 无
********************************************************************/
void delay(long int i)
{
	while(i--);	
}
/*******************************************************************
* 函 数 名       : main
* 函数功能		 : 主函数
* 输    入       : 无
* 输    出    	 : 无
********************************************************************/
void main()
{
    SetPWMClkDiv(4);                          //PWM时钟配置,Fsys/4,Fsys默认为12Mhz
    SetPWMCycle256Clk();                      //PWM周期 Fsys/4/256
    /* 启动通道 */
    PWM_SEL_CHANNEL(CH3,Enable);                 //对ch3，即p2.2，即led的pwm外设初始化
    while(1)
    {
        int i = 0;
        /*配置占空比使得led灯从灭逐步到亮*/
        for ( i = 0; i <= 256; i++)
        {
           SetPWM3Dat(i);//配置占空比，占空比等于i/256
           delay(1000);
        }
        /*配置占空比使得led灯从亮逐步到灭*/
        for ( i = 256; i >= 0; i--)
        {
           SetPWM3Dat(i);//配置占空比，占空比等于i/256
           delay(1000);
        }
    }
}
